// pages/profile/index.ts
// 获取页面栈
const pageStack = getCurrentPages()
// console.log(pageStack);
Page({
  onLoad() {
    // 获取应用实例
    const app = getApp()
    // 渲染头像和昵称
    this.setData({...app.userProfile})
  },
  // 获取用户昵称
  getUserNickname(ev) {
    // console.log(ev);
    // 更新页面昵称
    this.updateNickname(ev.detail.value)
  },
  async updateNickname(nickName) {
    if(nickName === '') return
    // 调用昵称接口
    const {code} = await wx.http.put('/userInfo', {nickName})
    // 检测接口调用是否成功
    if(code !== 10000) return wx.utils.toast('更新昵称失败')
    // 借助于页面栈实例更新pages/my/index .wxml中的昵称
    pageStack[0].setData({nickName})
    // 同步更新数据到应用实例中
    const app = getApp()
    app.userProfile.nickName = nickName
  },
  // 获取用户头像
  getUserSeavatar(ev) {
    // console.log(ev);
    // 更新用户头像
    this.updateSeavatar(ev.detail.avatarUrl)
  },
  updateSeavatar(avatar) {
    // 调用API上传文件
    wx.uploadFile({
      // 接口地址
      url: wx.http.baseURL + '/upload',
      // 要上传的文件路径
      filePath: avatar,
      name: 'file',
      header: {
        // 用户登录状态
        Authorization: 'Bearer ' + getApp().token
      },
      FormData: {type: 'avatar'},
      success: (result) => {
        // console.log(result);
        // 处理返回的数据
        const data = JSON.parse(result.data)
        // console.log(data);
        // 检测接口是否调用成功
        if(data.code !== 10000) return wx.utils.toast('上传头像失败')
        // 调用页面栈实例更新pages/my/index.wxml中的头像
        pageStack[0].setData({avatar: data.data.url})
        
        // 渲染当前页面头像
        this.setData({avatar: data.data.url}) 
        // 同步更新数据到应用实例中
        const app = getApp()
        app.userProfile.avatar = avatar
      }
    })
  }
})